package grafica.vista;

import grafica.Forma;
import grafica.base.RettangoloBase;
import grafica.base.TriangoloBase;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.geom.Area;
import java.awt.geom.Ellipse2D;

public class TriangoloVista implements Forma{
	private TriangoloBase tri;
	private Color colore;
	/**
	 * @param tri
	 */
	public TriangoloVista(TriangoloBase tri) {
		super();
		this.tri = tri;
	}
	@Override
	public void draw(Graphics oggetto) {
		Color colo=oggetto.getColor();
		oggetto.setColor(this.colore);
		int []x=new int[4];
		int []y=new int[4];
		x[0]=tri.getXp();
		y[0]=tri.getYp();
		x[1]=tri.getXp()+tri.getBase();
		y[1]=tri.getYp();
		x[2]=tri.getXp()+(tri.getBase()/2);
		y[2]=tri.getYp()-tri.getAltezza();
		x[3]=tri.getXp();
		y[3]=tri.getYp();
		oggetto.fillPolygon(x, y, 4);
		oggetto.setColor(colo);
	}
	/**
	 * @return the tri
	 */
	public TriangoloBase getTri() {
		return tri;
	}
	/**
	 * @param tri the tri to set
	 */
	public void setTri(TriangoloBase tri) {
		this.tri = tri;
	}
	@Override
	public boolean puntoAppartenenza(int x, int y) {
		
		return false;
	}
	public boolean intersezioneRettangolo(RettangoloBase istanza) {
		Area are=new Area(new Ellipse2D.Double(tri.getXp(), 
				tri.getYp()-tri.getAltezza(), 
				tri.getBase(),
				tri.getAltezza()));
		if(are.intersects(istanza.getX(), istanza.getY(), istanza.getBase(), istanza.getAltezza()))
		return true;
		return false;
	}
	/**
	 * @return the colore
	 */
	public Color getColore() {
		return colore;
	}
	/**
	 * @param colore the colore to set
	 */
	public void setColore(Color colore) {
		this.colore = colore;
	}
	public Object clone() throws CloneNotSupportedException {
		TriangoloVista copia=new TriangoloVista(new TriangoloBase(this.getTri().getXp(),this.getTri().getYp(),this.getTri().getBase(),this.getTri().getAltezza()));
		return copia; 
	}
	
}
